package com.rankeiot.ai.message;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NonNull;

@Data
public class ChatMessage {
    /**
     * 当前支持以下：
     * user: 表示用户
     * assistant: 表示对话助手
     * function: 表示函数
     */
    String role;

    /**
     * 对话内容，说明：
     * （1）当前message存在function_call，且role="assistant"时可以为空，其他场景不能为空
     * （2）最后一个message对应的content不能为blank字符，包含空格、"\n"、“\r”、“\f”等
     */
    String content;
    /**
     * message作者；当role=function时，必填，且是响应内容中function_call中的name
     */
    String name;
    /**
     * 函数调用，function call场景下第一轮对话的返回，第二轮对话作为历史信息在message中传入
     */
    FunctionCall function_call;

    public ChatMessage(){

    }

    public ChatMessage(String role, String content, String name) {
        this.role = role;
        this.content = content;
        this.name = name;
    }
}
